import java.util.*;

public interface StateWithCost {
	/**
	 * Returns a collection of all <code>StateWithCost</code>s adjacent to
	 * this <code>StateWithCost</code>.  Each adjacent <code>StateWithCost</code>
	 * is associated with the step-cost from this <code>StateWithCost</code>
	 * to the adjacent <code>StateWithCost</code>. 
	 * 
	 * @return a collection of all <code>StateWithCost</code>s adjacent to this
	 * <code>StateWithCost</code> and their associated step-costs.
	 */
	Map<? extends StateWithCost,Double> getNeighborsWithCost();
}